



var p = new Promise((resolve, reject) => {
	// 用Promise包裹异步任务， 然后通过Promise的API 获取异步结果
	setTimeout(() => {
		console.log('用setTimeout模拟的一个异步任务')
		var rand = Math.random()
		if(rand > 0.5) {
			console.log('成功')
			resolve("ok "+rand)
		} else {
			console.log('失败')
			reject("error "+rand)
		}
	}, 1000)
})


// then方法作用是为 Promise实例添加状态改变时的回调函数。
// then回到函数的返回值为一个新的Promise实例(可以链式then)
//  1. 如果返回值是一个非Promise类型的数据  包裹成成功的promise对象
//  	 相当于返回Promise.resolve(data), 比如 Promise.resolve(undefiend)
//  2. 如果返回的是一个Promise对象， 则结果就会成为新promise的结果(成功/失败)
//  3. 抛出异常  相当于返回一个失败的promise
p.then(value => {
	console.log('value => ', value)
	return Promise.reject('error')
}, reason => {
	console.warn('reason => ', reason)
}).then(value => {
	console.log('value2 => ', value)
}, reason => {
	console.warn('reason2 => ', reason)
})

